Øyvind Kolås [Tue, 31 Jul 2012 18:45:36 +0000 (20:45 +0200)]
extensions: cairo - remove unused lut_linear table
Jon Nordby [Tue, 31 Jul 2012 16:19:02 +0000 (18:19 +0200)]
introspection: Add GI/GTKDoc style symbol references to comments
Jon Nordby [Mon, 30 Jul 2012 14:35:17 +0000 (16:35 +0200)]
introspection: Pass --warn-all to g-ir-scanner
Jon Nordby [Mon, 30 Jul 2012 14:34:18 +0000 (16:34 +0200)]
configure.ac: Fix typo in check for GI >= 1.33.5
Jon Nordby [Sun, 29 Jul 2012 13:39:27 +0000 (15:39 +0200)]
tests: Add test setup for introspection bindings in Python
This is essentially all we can test for now, as the
methods using the Babl type are show up with 'introspectable="1"'.
Øyvind Kolås [Mon, 30 Jul 2012 20:48:57 +0000 (22:48 +0200)]
extensions: make fastpath for R'G'B'A u8 to cairo-ARGB32 have 0 error
Alexia Death [Fri, 27 Jul 2012 18:49:35 +0000 (21:49 +0300)]
extensions: add fastpath for R'G'B'A u8 to cairo-ARGB32 conversion
Jon Nordby [Sun, 29 Jul 2012 13:06:03 +0000 (15:06 +0200)]
introspection: Babl.BablObject -> Babl.Object
Jon Nordby [Fri, 27 Jul 2012 20:00:46 +0000 (22:00 +0200)]
Bug 673422 - Babl C type not accessible to introspection bindings
https://bugzilla.gnome.org/show_bug.cgi?id=673422
Annotate Babl C type to be Babl.Object in GIR using the
"rename to" annotation in GI 1.33.5+. For earlier versions,
use a static .gir file to achieve the same.
Øyvind Kolås [Fri, 27 Jul 2012 19:13:12 +0000 (21:13 +0200)]
Revert "Add simple test app to test pow-24 accuracy"
commit
dc824c0ac704b35130aff44e544e8666e21b5bc5 which was pushed by accident.
Øyvind Kolås [Fri, 27 Jul 2012 19:09:59 +0000 (21:09 +0200)]
Revert "extensions/gggl{,-lies}.c: do not register the same conversion twice or +"
This reverts commit
bc66f5ae8a98896f360549cb87cbbfae77d176df
The conversions in gggl and gggl-lies are not the same, even though the lines
registering them seem identical; their effect is different since the same
names refer to different pixel formats. Further restructuring these
conversions and getting rid of the gggl legacy naming of them might be
beneficial..
Alexander Larsson [Mon, 18 Jun 2012 13:17:51 +0000 (15:17 +0200)]
Add simple test app to test pow-24 accuracy
https://bugzilla.gnome.org/show_bug.cgi?id=678318
Massimo Valentini [Sat, 14 Jul 2012 15:07:38 +0000 (17:07 +0200)]
extensions/gggl{,-lies}.c: do not register the same conversion twice or +
grep "o (" extensions/gggl.c | sort | uniq -d
grep "o (" extensions/gggl-lies.c | sort | uniq -d
Massimo Valentini [Sat, 14 Jul 2012 15:07:38 +0000 (17:07 +0200)]
extensions/gggl{,-lies}.c: round toward nearest in integer unpremultiplication
from (docs/BablFishPath.html):
../extensions/.libs/gggl-lies.so 0: RaGaBaA u8 to RGBA u8
error: 0.001425 cost: 81 processings: 1 pixels: 128
../extensions/.libs/gggl.so 0: R'aG'aB'aA u8 to R'G'B'A u8
error: 0.001971 cost: 71 processings: 1 pixels: 128
../extensions/.libs/gggl.so 0: R'aG'aB'aA u8 to R'G'B' u8
error: 0.001971 cost: 71 processings: 1 pixels: 128
to:
../extensions/.libs/gggl-lies.so 0: RaGaBaA u8 to RGBA u8
error: 0.000031 cost: 81 processings: 1 pixels: 128
../extensions/.libs/gggl.so 0: R'aG'aB'aA u8 to R'G'B'A u8
error: 0.000042 cost: 61 processings: 1 pixels: 128
../extensions/.libs/gggl.so 0: R'aG'aB'aA u8 to R'G'B' u8
error: 0.000042 cost: 61 processings: 1 pixels: 128
Massimo Valentini [Sat, 14 Jul 2012 15:07:38 +0000 (17:07 +0200)]
extensions/gggl{,-lies}.c: fix a Fixme: (>>8 vs /255)
division per 0x100-1 is implemented using 1 term of (1 + x)^-1
MacLaurin expansion
(1+x)^-1 == 1 + (-1) x
a * (1 - 1/256)^-1 * (256^-1) == (a + a / 256) / 256
with integer division rounded toward the nearest.
Massimo Valentini [Sat, 14 Jul 2012 15:07:38 +0000 (17:07 +0200)]
extensions/gggl{,-lies}.c: use 'lrint' where it is not yet used
and instead of 'rint'.
'lrint' returning a long does not require a conversion double->int
that in theory requires changing the rounding direction from
toward the nearest to toward zero.
Massimo Valentini [Sat, 14 Jul 2012 15:07:38 +0000 (17:07 +0200)]
extensions/gggl{,-lies}.c: fix conversions u16 <-> u8
u16 maximum value is 0x10000 - 1 == (0x100 - 1) (0x100 + 1)
u8 maximum value is 0x100 - 1
thus the direct conversion requires multiplication/division per
0x100+1
division per 0x100+1 is implemented using 1 term of (1 + x)^-1
MacLaurin expansion
(1+x)^-1 == 1 + (-1) x
a * (1 + 1/256)^-1 * (256^-1) == (a - a / 256) / 256
with integer division rounded toward the nearest.
Massimo Valentini [Sat, 14 Jul 2012 15:07:38 +0000 (17:07 +0200)]
extensions/gggl{,-lies}.c: reduce errors of table-based conversions
centering the sample within the range of floats it represents
Massimo Valentini [Sat, 14 Jul 2012 15:07:38 +0000 (17:07 +0200)]
extensions/gggl.c: move table-based conversions in #ifdef USE_TABLES
and the corresponding not using tables in the #else branch
Massimo Valentini [Sat, 14 Jul 2012 15:07:38 +0000 (17:07 +0200)]
babl: don't write anything if dest model lacks a source component
otherwise converting cairo-RGB24 to R'G'B' overwrites the red
component with the PAD.
Massimo Valentini [Sat, 14 Jul 2012 15:07:37 +0000 (17:07 +0200)]
tests: add a test for conversions cairo-RGB24 <-> R'G'B' u8
Michael Muré [Mon, 25 Jun 2012 10:22:27 +0000 (19:22 +0900)]
index-static.html.in: correct usage example
* babl_fish return a const Babl*
* better naming
Michael Muré [Mon, 25 Jun 2012 10:20:30 +0000 (19:20 +0900)]
index-static.html.in: force utf-8 charset in <head>
Alexander Larsson [Mon, 18 Jun 2012 10:58:47 +0000 (12:58 +0200)]
Use new approximations for gamma conversions
https://bugzilla.gnome.org/show_bug.cgi?id=678318
Alexander Larsson [Mon, 18 Jun 2012 10:58:12 +0000 (12:58 +0200)]
Add fast approximations of x^2.4 and x^(1/2.4)
Use a chebyshev polynominal approximation of these to speed up
gamma conversion. Based on the post in:
http://stackoverflow.com/questions/
6475373/optimizations-for-pow-with-const-non-integer-exponent/
6478839#
6478839
https://bugzilla.gnome.org/show_bug.cgi?id=678318
Michael Muré [Wed, 23 May 2012 06:21:52 +0000 (15:21 +0900)]
update .gitignore
Michael Muré [Tue, 22 May 2012 03:48:44 +0000 (12:48 +0900)]
sse-fixups: use more portable functions to help compile with clang
Original patch found here
http://www.freebsd.org/cgi/cvsweb.cgi/ports/x11/babl/files/patch-sse-fixups.c?rev=1.1;content-type=text%2Fplain
CVS tags: RELEASE_8_3_0, HEAD
Fix the build with clang.
PR: ports/163518
Submitted by: Jan Beich <jbeich@tormail.net>
Feature safe: yes
Martin Nordholts [Fri, 18 May 2012 11:33:54 +0000 (13:33 +0200)]
fixup! tests: Avoid rounding error and correct source pixels
Martin Nordholts [Fri, 18 May 2012 11:31:38 +0000 (13:31 +0200)]
tests: Avoid rounding error and correct source pixels
In float-to-8bit.c and "float -> u8 6", change 0.3 to 0.301 since 0.3
/ 0.6 * 255 = 127.5, so the slightest platform specific rounding error
will give different results for u8 (127 or 128).
Also correct G'a and B'a values in the third pixel to match expected
values, the source values seems to have forgotten about
premultiplication.
Øyvind Kolås [Wed, 2 May 2012 23:20:29 +0000 (01:20 +0200)]
add a u15 type that is 16bit only using 15bits
Michael Natterer [Mon, 7 May 2012 20:54:44 +0000 (22:54 +0200)]
configure: don't set SHREXT to .dylib on darwin
libtool creates .so modules anyway (modules not libs!)
Øyvind Kolås [Fri, 4 May 2012 22:04:59 +0000 (00:04 +0200)]
add fast paths for conversions to cairo-RGB24
Øyvind Kolås [Fri, 4 May 2012 21:34:11 +0000 (23:34 +0200)]
do not repeat test many many times
Massimo Valentini [Fri, 4 May 2012 17:04:30 +0000 (19:04 +0200)]
extensions: cairo ARGB format is premultiplied
Massimo Valentini [Fri, 4 May 2012 17:04:03 +0000 (19:04 +0200)]
babl: initialize 'palette' babl-format member
otherwise non-palette formats could be mistakenly used as palette
Simon Budig [Thu, 3 May 2012 11:32:55 +0000 (13:32 +0200)]
fix a warning
Øyvind Kolås [Wed, 2 May 2012 21:51:10 +0000 (23:51 +0200)]
fix cpu-accel test for 64bit
Øyvind Kolås [Wed, 2 May 2012 21:48:54 +0000 (23:48 +0200)]
only enable sse-fixups when not on 64bit
Øyvind Kolås [Wed, 2 May 2012 21:10:16 +0000 (23:10 +0200)]
tests: add more float->8bit tests
Øyvind Kolås [Wed, 2 May 2012 21:00:46 +0000 (23:00 +0200)]
tests: split utility function out into common.inc
Øyvind Kolås [Wed, 2 May 2012 00:34:42 +0000 (02:34 +0200)]
directly use stdint types in half-float reference code
Øyvind Kolås [Wed, 2 May 2012 00:27:19 +0000 (02:27 +0200)]
use stdint types for sized data types
Øyvind Kolås [Tue, 1 May 2012 11:40:28 +0000 (13:40 +0200)]
also test >1.0 values when converting from float to u8
Simon Budig [Tue, 1 May 2012 11:35:58 +0000 (13:35 +0200)]
add simple test for float->u8 conversion
Øyvind Kolås [Tue, 1 May 2012 00:34:18 +0000 (02:34 +0200)]
add some standard u32 based formats
Øyvind Kolås [Mon, 30 Apr 2012 02:47:45 +0000 (04:47 +0200)]
further slight decrease of error in conversion
Øyvind Kolås [Sun, 29 Apr 2012 23:04:33 +0000 (01:04 +0200)]
decrease error of float to 8bit LUT extension
Øyvind Kolås [Wed, 25 Apr 2012 23:17:41 +0000 (01:17 +0200)]
add babl_format_get_model
Øyvind Kolås [Wed, 25 Apr 2012 23:07:00 +0000 (01:07 +0200)]
add some half-float based formats
Øyvind Kolås [Mon, 23 Apr 2012 23:26:30 +0000 (01:26 +0200)]
Revert "replace gamma functions with #defines"
This reverts commit
fd11d181d043e56168572c08f932f6d0379615e3.
Øyvind Kolås [Mon, 23 Apr 2012 23:20:50 +0000 (01:20 +0200)]
Revert "guard gamma defines' argument in extra ()s"
This reverts commit
18b4f45d258c75ea4e5c30b7f9a792aded31c196.
Øyvind Kolås [Mon, 23 Apr 2012 23:20:39 +0000 (01:20 +0200)]
Revert "Revert "allocate temporary buffers for fish conversion on the stack""
This reverts commit
70e984d454618a219a5f472915e004da623726a6.
Øyvind Kolås [Mon, 23 Apr 2012 22:59:23 +0000 (00:59 +0200)]
guard gamma defines' argument in extra ()s
Øyvind Kolås [Mon, 23 Apr 2012 15:58:15 +0000 (17:58 +0200)]
Revert "allocate temporary buffers for fish conversion on the stack"
This reverts commit
290ce9308f7b18f15398707e2d948f8745dd0be0.
I don't think it should, but it seems like it breaks expected behavior.
Øyvind Kolås [Sun, 22 Apr 2012 23:53:27 +0000 (01:53 +0200)]
replace gamma functions with #defines
Causes some slight speedup across babl on less agressive optimization
levels.
Øyvind Kolås [Sun, 22 Apr 2012 23:07:14 +0000 (01:07 +0200)]
allocate temporary buffers for fish conversion on the stack
This avoids calling malloc/free for fishes that consists of multiple steps.
Øyvind Kolås [Sat, 21 Apr 2012 23:31:05 +0000 (01:31 +0200)]
base: added IEEE 754-2008 half precision float
Using BSD licensed code that means applications using babl should display the
appropriate copyright header - or this code needs to be reimplemented so that
babl can retain the functionality without that additional requirement.
Øyvind Kolås [Tue, 10 Apr 2012 22:05:28 +0000 (00:05 +0200)]
tests: added test to extract a component
Dominique Leuenberger [Tue, 10 Jan 2012 16:32:50 +0000 (17:32 +0100)]
gobject-introspection: fix build of the .gir and .typelib files.
Øyvind Kolås [Thu, 5 Apr 2012 14:39:15 +0000 (16:39 +0200)]
babl/babl-palette.c: remove include of <values.h>
No longer needed when limits.h is included.
Øyvind Kolås [Thu, 5 Apr 2012 14:35:51 +0000 (16:35 +0200)]
babl/babl-palette.c: #include <limits.h>
Fixing bug #673466 from reported by Tim Mooney, makes babl build on solaris.
Øyvind Kolås [Mon, 2 Apr 2012 21:37:01 +0000 (22:37 +0100)]
post release bump version to 0.1.11
Øyvind Kolås [Mon, 2 Apr 2012 21:35:06 +0000 (22:35 +0100)]
release 0.1.10
Øyvind Kolås [Mon, 2 Apr 2012 21:25:22 +0000 (22:25 +0100)]
Get rid of ChangeLog
Only sentimental reasons to keep it around.
Øyvind Kolås [Sun, 1 Apr 2012 18:41:47 +0000 (19:41 +0100)]
extensions: quadruple precision of LUT based floatfuncs
(without increasing the size of the lookup tables, with neglible
performance cost)
Øyvind Kolås [Sun, 1 Apr 2012 14:08:13 +0000 (15:08 +0100)]
fast-float: reduce overhead of saturating LUT
Øyvind Kolås [Sun, 1 Apr 2012 14:03:10 +0000 (15:03 +0100)]
extensions/fast-float: reduce precision
Reduce sizes of lookup tables by an order of magnitude, doubling the run-time
performance.
Øyvind Kolås [Sun, 1 Apr 2012 02:08:53 +0000 (03:08 +0100)]
extensions: add lut based gamma for float
Øyvind Kolås [Sat, 31 Mar 2012 16:08:16 +0000 (17:08 +0100)]
babl: reduce number of pixels tested when profiling to 128
Øyvind Kolås [Sat, 31 Mar 2012 14:34:31 +0000 (15:34 +0100)]
extensions: get rid of some of the conversions with the highest errors
Øyvind Kolås [Sat, 31 Mar 2012 14:06:52 +0000 (15:06 +0100)]
extensions: remove optmized powf, use the fully correct optimization from base
Øyvind Kolås [Sat, 31 Mar 2012 13:58:49 +0000 (14:58 +0100)]
extensions: add an extension with some float optimizations
Alos improve some alpha unpremultiplications in other extensions.
Øyvind Kolås [Sat, 31 Mar 2012 13:58:16 +0000 (14:58 +0100)]
base/util.h change define used in include guards
Øyvind Kolås [Sat, 31 Mar 2012 02:47:06 +0000 (03:47 +0100)]
use optimized powf for x^(1.0/2.4)
Øyvind Kolås [Sat, 31 Mar 2012 02:44:45 +0000 (03:44 +0100)]
reorder loops of reference premul
Øyvind Kolås [Sat, 31 Mar 2012 01:50:43 +0000 (02:50 +0100)]
use sse conversions also for gamma corrected data
Øyvind Kolås [Thu, 29 Mar 2012 23:37:00 +0000 (00:37 +0100)]
post release version bump to 0.1.9
Øyvind Kolås [Thu, 29 Mar 2012 23:33:09 +0000 (00:33 +0100)]
bump version to 0.1.8
Also updated NEWS
Øyvind Kolås [Thu, 29 Mar 2012 23:31:43 +0000 (00:31 +0100)]
build: do not enable introspection even for distcheck
Øyvind Kolås [Thu, 29 Mar 2012 23:14:49 +0000 (00:14 +0100)]
palette: return the same values if same name is provided
Øyvind Kolås [Wed, 28 Mar 2012 19:28:48 +0000 (20:28 +0100)]
palette: change alpha reporting for palette formats
Only return TRUE if the format has a dedicated alpha component.
Øyvind Kolås [Mon, 26 Mar 2012 14:29:12 +0000 (15:29 +0100)]
palette: use INT_MAX instead of MAXINT
Øyvind Kolås [Wed, 21 Mar 2012 18:13:38 +0000 (18:13 +0000)]
add babl_format_is_palette
Øyvind Kolås [Mon, 19 Mar 2012 15:24:36 +0000 (15:24 +0000)]
palette: return the BablModel created
Øyvind Kolås [Mon, 19 Mar 2012 12:46:45 +0000 (12:46 +0000)]
disable gobject introspection by default
The tooling crashes with odd strlen assertions breaking the build on many
existing linux distros. This change should make gobject introspection
disabled by defualt.
Øyvind Kolås [Mon, 19 Mar 2012 02:55:32 +0000 (02:55 +0000)]
palette: optimize rgb(a) -> palette index computation
Øyvind Kolås [Sun, 18 Mar 2012 22:10:20 +0000 (22:10 +0000)]
palette: add fast paths for adding and removing alpha channel
Øyvind Kolås [Sun, 18 Mar 2012 16:57:04 +0000 (16:57 +0000)]
tests: constify tests
Øyvind Kolås [Sun, 18 Mar 2012 15:58:11 +0000 (15:58 +0000)]
constify API
Øyvind Kolås [Sun, 18 Mar 2012 15:00:07 +0000 (15:00 +0000)]
palette: add fastish path for alpha<->no alpha
Øyvind Kolås [Sun, 18 Mar 2012 14:17:04 +0000 (14:17 +0000)]
carry around user data in BablConversion
Having the user data for relevant conversions directly in BablConversion
permits avoiding branches in the dispatch code. Branches in dispatch code
is evil, thus desinging the rest around avoiding that.
Øyvind Kolås [Sun, 18 Mar 2012 13:10:19 +0000 (13:10 +0000)]
palette: changed API to have aplha and non-alpha formats in out arguments
Øyvind Kolås [Sun, 18 Mar 2012 11:39:12 +0000 (11:39 +0000)]
make babl pass valgrinding
Øyvind Kolås [Sun, 18 Mar 2012 02:52:00 +0000 (02:52 +0000)]
palette: initialize with 8bit fast path buffer
Øyvind Kolås [Sun, 18 Mar 2012 00:10:52 +0000 (00:10 +0000)]
add 8bit fast path for pal -> rgba
Øyvind Kolås [Sat, 17 Mar 2012 23:54:49 +0000 (23:54 +0000)]
add bablformats that match the hosts endianness
Øyvind Kolås [Sat, 17 Mar 2012 19:39:21 +0000 (19:39 +0000)]
palette: cache the double version of the palette internally
Øyvind Kolås [Sat, 17 Mar 2012 17:02:44 +0000 (17:02 +0000)]
palette: add capability to use palette formats with separate alpha
Also refactored to make babl-palette.c only use public API.
Øyvind Kolås [Sat, 17 Mar 2012 12:32:47 +0000 (12:32 +0000)]
add file missing from last commit
Øyvind Kolås [Sat, 17 Mar 2012 12:22:10 +0000 (12:22 +0000)]
add API for managing palette based formats